//杨辉三角形

import java.util.ArrayList;
import java.util.List;

public class YangHui {
    public static List<List<Integer>> generate(int numRows) {
        List<List<Integer>> list = new ArrayList<>();

        //第一行先放
        List<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list.add(list1);

        //再从第二行开始放
        for (int i = 1; i < numRows; i++) {
            //第一列是1
            List<Integer> list2 = new ArrayList<>();
            list2.add(1);

            //中间列
            List<Integer> prevNum = list.get(i - 1);//先拿到上一列
            for (int j = 1; j < i; j++) {//从第二个元素到倒数第二个元素
                int num = prevNum.get(j) + prevNum.get(j - 1);//上一列的元素加起来
                list2.add(num);
            }

            //最后一列是1
            list2.add(1);
            list.add(list2);
        }

        return list;
    }

    public static void main(String[] args) {
        List<List<Integer>> list = generate(10);
        for (List<Integer> list1 : list) {
            System.out.println(list1);
        }
    }
}
